<template>
     <!-- 主体部分 -->
    <section class="main">
      <input v-model="isCheckAll" id="toggle-all" class="toggle-all" type="checkbox" />
      <label for="toggle-all">Mark all as complete</label>
      <ul class="todo-list">
        <!-- 当任务已完成，可以给 li 加上 completed 类，会让元素加上删除线 -->
        <li 
        v-for="item in list"
        :key="item.id"
        :class="{completed:item.isDone}">
          <div class="view">
            <input class="toggle" type="checkbox" @change="hChangeDone(item.id)"
             :checked="item.isDone" />
            <label>{{item.name}}</label>
            <button class="destroy" @click="hDel(item.id)"></button>
          </div>
        </li>
      </ul>
    </section>

</template>

<script>
export default {
   name:'TodoMain',
   props:{
    list:{
      type:Array,
      required:true
    }
   },
   methods:{
    hDel(id) {
      // 1.绑定点击事件，传入id
      // console.log(id);
      // 2.将id 子传父传递给App组件
      // 参数1:事件名
      // 参数2：数据
      this.$emit('getId', id);
    },
    hChangeDone(id){
      // 1.绑定change事件，传入(id) 
      // console.log(id);
      // 2.将iid 传递给父组件 
      this.$emit('ChangeDone', id);
      // 3.父组件找到对应的元素将isDone取反  
    }
   },
   computed:{
    isCheckAll:{
      get(){
        return this.list.every(item => item.isDone)
      },
      set(val) {
        //当用户修改状态时触发
        // console.log(val);
        // 子传父 交给父组件更新状态 
        this.$emit('changeAll', val);
      }
    }
   }
};
</script>

<style lang="scss" scoped>

</style>